import { get, post, postWithQueryParams } from "@/api/request";

/**
 * 整改记录控制器 / 整改记录控制器添加整改记录
 * @param {object} data
 * @param {string} [data.correctiveReply] 整改回复内容
 * @param {number} [data.correctiveRequestId] 整改要求ID
 * @param {array<number>} [data.fileIdList] 附件id
 * @param {number} [data.id] id
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<CorrectiveRecords页面展示实体>}
 */
export function correctiveRecordsAdd(data, config) {
  return post("/correctiveRecords/add", data, config);
}

/**
 * 整改记录控制器 / 整改记录控制器删除整改记录
 * @param {object} params
 * @param {object} data
 * @param {string} params.id 整改记录ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<CorrectiveRecords页面展示实体>}
 */
export function correctiveRecordsDelete(params, data, config) {
  return postWithQueryParams("/correctiveRecords/delete", params, data, config);
}

/**
 * 整改记录控制器 / 整改记录控制器查询整改记录详情
 * @param {object} params
 * @param {string} params.id 整改记录ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<CorrectiveRecords页面展示实体>}
 */
export function correctiveRecordsDetail(params, config) {
  return get("/correctiveRecords/detail", params, config);
}

/**
 * 整改记录控制器 / 整改记录控制器分页查询整改记录
 * @param {object} data
 * @param {string} [data.correctiveReply] 整改回复内容
 * @param {number} [data.correctiveRequestId] 整改要求ID
 * @param {string} [data.createTime] 创建时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.createUser] 创建人
 * @param {number} [data.delFlag] 删除标识
 * @param {number} [data.id] id
 * @param {number} [data.length] 分页大小
 * @param {number} [data.orderAsc] 排序方向
 * @param {string} [data.orderColum] 排序字段
 * @param {number} [data.pageIndex] 分页下标
 * @param {number} [data.start] 查询记录起始下标
 * @param {string} [data.updateTime] 更新时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.updateUser] 更新人
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<分页返回实体<CorrectiveRecords页面展示实体>>}
 */
export function correctiveRecordsList(data, config) {
  return post("/correctiveRecords/list", data, config);
}

/**
 * 整改记录控制器 / 整改记录控制器更新整改记录
 * @param {object} data
 * @param {string} [data.correctiveReply] 整改回复内容
 * @param {number} [data.correctiveRequestId] 整改要求ID
 * @param {string} [data.createTime] 创建时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.createUser] 创建人
 * @param {number} [data.delFlag] 删除标识
 * @param {array<number>} [data.fileIdList] 附件id
 * @param {number} [data.id] id
 * @param {string} [data.updateTime] 更新时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.updateUser] 更新人
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<CorrectiveRecords页面展示实体>}
 */
export function correctiveRecordsUpdate(data, config) {
  return post("/correctiveRecords/update", data, config);
}

/**
 * @template T
 * @typedef {Object} 分页返回实体
 * @property {T[]} content - 内容
 * @property {number} elementsNo
 * @property {number} limit
 * @property {number} number
 * @property {number} totalElements
 * @property {number} totalPages
 * @description 分页返回实体
 */

/**
 * @typedef {object} 附件页面展示实体 附件页面展示实体
 * @property {string} attKey 附件key
 * @property {number} attOrder 附件排序
 * @property {number} attSize 附件大小(单位:MB)
 * @property {string} attSizeString 附件大小
 * @property {string} attSuffix 附件后缀
 * @property {string} attUrl 附件url
 * @property {string} attachmentType 文件类型
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建用户
 * @property {boolean} delFlag 删除标识(false:否, true:是)
 * @property {number} directoryId 目录id
 * @property {number} id 主键
 * @property {string} originalName 原始文件名
 * @property {string} remark 备注
 * @property {string} updateTime 修改时间
 * @property {string} updateUser 修改用户
 * @description 附件页面展示实体
 */

/**
 * @typedef {object} CorrectiveRecords页面展示实体 整改记录页面展示实体
 * @property {array<附件页面展示实体>} attachmentVOList 附件
 * @property {string} correctiveReply 整改回复内容
 * @property {number} correctiveRequestId 整改要求ID
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建人
 * @property {number} delFlag 删除标识
 * @property {number} id
 * @property {string} updateTime 更新时间
 * @property {string} updateUser 更新人
 * @description 整改记录页面展示实体
 */
